Previous | Table of Contents | Next |
Improving the way parts of your system perform, particularly those parts that affect your users, is a great way to make your life easier. However, sometimes its the subtle changes that can enhance system performance the most. In this section, youll find specific ways to improve the performance of your general system, your network (including special sections on particular services), your file systems, and your printers.
The tuning parameters in this section tune the general performance of NT, rather than a specific aspect of NT such as file systems or memory. By our definition, these keys tune NT itself, not specific device drivers or user-level applications.
VI-1 Managing the number of threads can help you optimize performance. When NT boots, it creates a pool of worker threads that NTs kernel, Executive Subsystems, and device drivers use. When one of these components places a work item, such as the Cache Managers lazy cache flusher or the Memory Managers idle memory zero-filler, in a queue, a thread is assigned to process it. If too many threads are in the pool, they needlessly consume system resources. However, if not enough threads are in the pool, work items are not serviced in a timely manner. Adjust the following two registry keys to change the number of threads.
Hive: | HKEY_LOCAL_MACHINE |
Key: | System\CurrentControlSet\Control\Session Manager\Executive |
Value Name: | AdditionalCriticalWorkerThreads |
Data Type: | REG_DWORD |
Value: | <any number> |
VI-2 | Hive: | HKEY_LOCAL_MACHINE |
Key: | System\CurrentControlSet\Control\Session Manager\Executive | |
Value Name: | AdditionalDelayedWorkerThreads | |
Data Type: | REG_DWORD | |
Value: | <any number> |
The number you specify in the value increases the number of threads created for the specified work queue. NT has two thread queues. Threads in the Critical Work Queue execute in the low real-time priority range, so they have precedence over most system activity. Threads in the Delayed Work Queue have a slightly lower priority that results in higher latency the threads that service it compete with other processing for CPU time. The number of threads created for each queue is based on two criteria: whether the system is a server or workstation and how much physical memory the system has. You cant tell directly whether more threads in a particular situation give you better performance, but you can experiment with benchmark workloads to see if they provide a benefit.
VI-3 To make your foreground windows more responsive than your background windows, in Windows 3.51 you could boost priorities. In NT 4.0 Workstation, instead of boosting priorities, you set quantums to boost foreground windows (Server treats foreground and background windows alike). Change this registry entry to set the boost value.
Hive: | HKEY_LOCAL_MACHINE |
Key: | System\CurrentControlSet\Control |
Value Name: | PriorityControl |
Data Type: | REG_DWORD |
Value: | 0 |
You can also set the boost value with a slider in the Performance tab of the System Control Panel applet. Valid values are shown below.
0 | No quantum boost for foreground windows |
1 | Foreground windows have quantums twice as long as other windows |
2 | Foreground windows have quantums three times as long as other windows |
VI-4 Heres a tricky registry entry.
Hive: | HKEY_LOCAL_MACHINE |
Key: | System\CurrentControlSet\Control\Session Manager\Executive |
Value Name: | PriorityQuantumMatrix |
Data Type: | |
Value: |
Although you cant use this value to enhance performance, its name implies that you can. This value actually encodes expiration data about NT Beta and Release Candidates.
Previous | Table of Contents | Next |